﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections;
using System.Text.RegularExpressions;
using TD.SandDock;
namespace _201206QuanLyBanHang.ChucNang
{
    public partial class FormChiPhiKhac : Form
    {
        // khai báo biến 
        public int flast = 0; //=0 mới khởi động, =1 khi nhấn nút thêm, =2 khi nhấn nút lưu, =3 khi nhấn nút hủy, =4 khi nhấn nút sửa, = 5 khi nhấn nút xóa
        public int loi = 0;
        public int buttonSua = 0;
        private DateTime ngaycp;
        public DateTime ngayluutt;
        private int ngaytc=0;
        private int macp;       
        private double giachiphi;
        private int manv;
        private string ghichucp;
        private int stt;
        private DataSet ds = new DataSet();
        #region câu lệnh sql lấy danh sách Nhân viên sử dụng Chi Phí đi đường(chi phí khác)
        string sql_dsNV_CP_all = "select  kq.SoTT_NV_CPDD as sttdd, kq.ngaycp, kq.tencp,kq.giacp, (tb3.honhanvien + ' '+ tb3.tennhanvien) as ht,kq.manhanvien as kqmanv,kq.machiphi as kqmacp,kq.ghichuchiphi  " + 
                                     " from nhanvien as tb3 inner join " +
                                     " (select tb1.ngaychiphi as ngaycp, tb2.tenchiphi as tencp, tb1.giachiphi as giacp, tb1.manhanvien, tb1.SoTT_NV_CPDD,tb1.ghichuchiphi,tb1.machiphi " +
							                " from nhanvien_chiphidd as tb1 inner join chiphididuong as tb2 on tb1.machiphi=tb2.machiphi) as kq " +
		                             " on tb3.manhanvien=kq.manhanvien " +
                                     " order by ngaycp desc";        
        #endregion
        
        private ThuVien.Class_Database db = new ThuVien.Class_Database();
        private SQLCommand sqlSon = new SQLCommand();

        public FormChiPhiKhac()
        {
            InitializeComponent();
            dateTimePicker_NgaySuDung.ResetText();


            ktOn_Off(flast);
            //ngaycp = Convert.ToDateTime(dateTimePicker_NgaySuDung.Value.ToShortDateString());
           // load_dulieuTheoNgay(dateTimePicker_NgaySuDung.Value.ToShortDateString());



            
        }
        
        //Lấy dữ liệu vào dataGridView_ChiTiet_CPPS
        public void load_dulieu(string caulenhsql)
        {
            ds = db.ds_dataset(caulenhsql);
            dataGridView_ChiTiet_CPPS.DataSource = ds.Tables[0];
            dataGridView_ChiTiet_CPPS.Columns[0].HeaderText = "sttdd";
            
            dataGridView_ChiTiet_CPPS.Columns[1].HeaderText = "Ngày chi phí";
            dataGridView_ChiTiet_CPPS.Columns[2].HeaderText = "Tên chi phí";
            dataGridView_ChiTiet_CPPS.Columns[3].HeaderText = "Giá chi phí";
            dataGridView_ChiTiet_CPPS.Columns[4].HeaderText = "Nhân viên SD_CP";
            dataGridView_ChiTiet_CPPS.Columns[5].HeaderText = "kqmanv";
       
            dataGridView_ChiTiet_CPPS.Columns[6].HeaderText = "kqmacp";
            dataGridView_ChiTiet_CPPS.Columns[7].HeaderText = "Ghi chú";
            dataGridView_ChiTiet_CPPS.Columns[0].Visible = false;
            dataGridView_ChiTiet_CPPS.Columns[5].Visible = false;
            dataGridView_ChiTiet_CPPS.Columns[6].Visible = false;
            //sodong = 0;
            //sodong = ds.Tables[0].Rows.Count + 1;
            //this.Gropsodong.Text = "Danh sách khách hàng: số lượng khách hàng:";
            //this.Gropsodong.Text = this.Gropsodong.Text + sodong;


        }

        public void load_dulieuTheoNgay(String ngaycp)
        {
            dataGridView_ChiTiet_CPPS.DataSource = sqlSon.GetChiPhiDD_TheoNgay(ngaycp);// ds.Tables[0];
            dataGridView_ChiTiet_CPPS.Columns[0].HeaderText = "sttdd";
            dataGridView_ChiTiet_CPPS.Columns[1].HeaderText = "Ngày chi phí";
            dataGridView_ChiTiet_CPPS.Columns[2].HeaderText = "Tên chi phí";
            dataGridView_ChiTiet_CPPS.Columns[3].HeaderText = "Giá chi phí";
            dataGridView_ChiTiet_CPPS.Columns[4].HeaderText = "Nhân viên SD_CP";
            dataGridView_ChiTiet_CPPS.Columns[5].HeaderText = "kqmanv";
            dataGridView_ChiTiet_CPPS.Columns[6].HeaderText = "kqmacp";
            dataGridView_ChiTiet_CPPS.Columns[7].HeaderText = "Ghi chú";

            dataGridView_ChiTiet_CPPS.Columns[0].Visible = false;
            dataGridView_ChiTiet_CPPS.Columns[5].Visible = false;
            dataGridView_ChiTiet_CPPS.Columns[6].Visible = false;

            
        }
        //Sự kiện lưu
        private void button_Luu_Click(object sender, EventArgs e)
        {
            ktluu();
            if ( loi ==0 )
            {
                //khsp.NgayThanhToan = Convert.ToDateTime(dateNgayMua.Value.ToShortDateString());
                ngaycp = dateTimePicker_NgaySuDung.Value;

                macp = int.Parse(comboBoxEx_TenChiPhi.SelectedValue.ToString());
                giachiphi = double.Parse(textBox_GiaChiPhi.Text.ToString().Replace(",",""));
                //giachiphi = double.Parse(textBox_GiaChiPhi.Text.ToString());
                manv = int.Parse(comboBox_NhanVien.SelectedValue.ToString());
                ghichucp = textBox_GhiChu.Text;
                if (flast == 1) // Khi nhấn nút thêm
                {
                    sqlSon.insertChiPhiKhac1(macp, manv, ngaycp, giachiphi, ghichucp);
                    ngaytc = 1;
                    ngayluutt = dateTimePicker_NgaySuDung.Value;

                }
                else if (flast == 4)// khi nhấn nút sửa
                {
                    stt = int.Parse(dataGridView_ChiTiet_CPPS[dataGridView_ChiTiet_CPPS.Columns[0].Index, dataGridView_ChiTiet_CPPS.CurrentRow.Index].Value.ToString());
                    sqlSon.UpdateChiPhiKhac(giachiphi, ghichucp,stt);
                }
                else if (flast == 5)// khi nhấn nút xóa
                {
                    #region xóa dữ liệu
                    try
                    {
                        stt = int.Parse(dataGridView_ChiTiet_CPPS[dataGridView_ChiTiet_CPPS.Columns[0].Index, dataGridView_ChiTiet_CPPS.CurrentCell.RowIndex].Value.ToString());
                        DialogResult result;
                        result = MessageBox.Show("Bạn có muốn xóa không", "Xóa dữ liệu trong chi phi đi đường.", MessageBoxButtons.YesNo);
                        if (result == DialogResult.Yes)
                        {
                            try
                            {
                                sqlSon.DeleteChiPhiKhac(stt);
                                //MessageBox.Show("Xóa thành công. \n Hehe");
                                
                            }
                            catch (Exception ex)
                            {
                                MessageBox.Show("Hãy thử lại. \n" + ex.Message);
                            }

                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Hãy thử lại stt. \n" + ex.Message);
                    }
                    button_Luu.Text = "Lưu";
                    button_Luu.Image = global::_201206QuanLyBanHang.Properties.Resources.save;
                    #endregion
                }
               
                flast = 2;
                ktOn_Off(flast);
                load_dulieu(sql_dsNV_CP_all);
                loi = 0;
            }

            
        }
        // Kiểm tra khi lưu 
        public void ktluu()
        {
            if (comboBox_NhanVien.SelectedIndex == -1)
            {
                MessageBox.Show("Chọn nhân viên sử dụng chi phí.");
                loi = 1;
            }
            else if (comboBoxEx_TenChiPhi.SelectedIndex == -1)
            {
                MessageBox.Show("Chọn tên chi phí.");
                loi = 1;
            }
            //else if (IsNumber(textBox_GiaChiPhi.Text) == false)
            //{
            //    MessageBox.Show("Giá chi phí phải là số.");
            //    loi = 1;
            //}
            else if (textBox_GiaChiPhi.Text == "")
            {
                MessageBox.Show("Hãy nhập giá chi phí sử dụng.");
                loi = 1;
            }
            else //if(textBox_GiaChiPhi.isn)
                loi = 0;
        }
        public bool IsNumber(string pValue)
        {
            foreach (Char c in pValue)
            { 
                if (!Char.IsDigit(c))
                    return false;
            }
            return true;
        }
        //Sự kiện thêm
        private void button_Them_Click(object sender, EventArgs e)
        {
            if (ngaytc != 0)
            {
                dateTimePicker_NgaySuDung.Value = ngayluutt;
                
            }           
            flast = 1;
            ktOn_Off(flast);

        }       
        //Sự kiện Hủy
        private void button_Huy_Click(object sender, EventArgs e)
        {
            flast = 3;
            ktOn_Off(flast);
        }
        //Kiểm tra On_Off trạng thái toolbox
        public void ktOn_Off(int fl)
        {
            if (fl == 0 || fl == 2) //=0 mới khởi động, =2 khi nhấn nút lưu
            {

                load_dulieuTheoNgay(dateTimePicker_NgaySuDung.Value.ToShortDateString());
                //string date = dDate.Tostring("dd/MM/yyyy"); 
                groupPanel_CTPS.Text = "Chi tiết chi phí phát sinh giao hàng ngày  '" + dateTimePicker_NgaySuDung.Value.ToShortDateString();//("dd/MM/yyyy") + "'";// String.Format("{0:MM/dd/yyyy}", dateTimePicker_NgaySuDung.Value+"'");
                db.fillCombo("select manhanvien, honhanvien + ' ' + tennhanvien as hoten from nhanvien where tinhtrangnv=1", comboBox_NhanVien, "hoten", "manhanvien");
                db.fillCombo("select machiphi,tenchiphi from chiphididuong", comboBoxEx_TenChiPhi, "tenchiphi", "machiphi");
                comboBox_NhanVien.SelectedIndex = -1;
                comboBoxEx_TenChiPhi.SelectedIndex = -1;
                comboBoxEx_TenChiPhi.Text = "--Chọn tên chi phí--";
                comboBox_NhanVien.Text = "--Chọn nhân viên--";
                groupPanel_ThongTinPhatSinh.Enabled = false;
                button_Luu.Enabled = false;
                button_Huy.Enabled = false;
                dateTimePicker_NgaySuDung.Enabled = false;
                button_Them.Enabled = true;
                button_Sua.Enabled = true;
                button_Xoa.Enabled = true;
            }
            else if (fl == 1 ) //=1 khi nhấn nút thêm
            {
                    groupPanel_ThongTinPhatSinh.Enabled = true;
                    button_Luu.Enabled = true;
                    button_Huy.Enabled = true;
                    button_Sua.Enabled = false;
                    button_Xoa.Enabled = false;
                    button_Them.Enabled = false;
                    dateTimePicker_NgaySuDung.Enabled = true;                    
                    //db.fillCombo("select manhanvien, honhanvien + ' ' + tennhanvien as hoten from nhanvien", comboBox_NhanVien, "hoten", "manhanvien");
                    //db.fillCombo("select machiphi,tenchiphi from chiphididuong", comboBoxEx_TenChiPhi, "tenchiphi", "machiphi");
                    //comboBox_NhanVien.SelectedIndex = -1;
                    //comboBoxEx_TenChiPhi.SelectedIndex = -1;
                    comboBoxEx_TenChiPhi.Text = "--Chọn tên chi phí--";
                    comboBox_NhanVien.Text = "--Chọn nhân viên--";
                    //dateTimePicker_NgaySuDung.ResetText();
                    textBox_GiaChiPhi.Text = "";
                    textBox_GhiChu.Text = "";
                    label_NgayChiPhi.Text = "Ngày sử dụng";
                    label_NgayChiPhi.ForeColor = System.Drawing.SystemColors.HotTrack;
            }
            //=4 khi nhấn nút sửa,
            else if (fl == 4)
            {
                groupPanel_ThongTinPhatSinh.Enabled = false;
                button_Luu.Enabled = true;
                button_Huy.Enabled = true;
                button_Them.Enabled = false;
                button_Sua.Enabled = false;
                button_Xoa.Enabled = false;
                //db.fillCombo("select manhanvien, honhanvien + ' ' + tennhanvien as hoten from nhanvien", comboBox_NhanVien, "hoten", "manhanvien");
                //db.fillCombo("select machiphi,tenchiphi from chiphididuong", comboBoxEx_TenChiPhi, "tenchiphi", "machiphi");
                //comboBox_NhanVien.SelectedIndex = -1;
                //comboBoxEx_TenChiPhi.SelectedIndex = -1;
                comboBoxEx_TenChiPhi.Text = "--Chọn tên chi phí--";
                comboBox_NhanVien.Text = "--Chọn nhân viên--";
                //dateTimePicker_NgaySuDung.ResetText();
                textBox_GiaChiPhi.Text = "";
                textBox_GhiChu.Text = "";
                label_NgayChiPhi.Text = "Chọn ngày sửa";
                label_NgayChiPhi.ForeColor = System.Drawing.Color.Red;
                dateTimePicker_NgaySuDung.Enabled = true;
            }
            else if (fl == 5) // = 5 khi nhấn nút xóa
            {
                groupPanel_ThongTinPhatSinh.Enabled = false;
                button_Luu.Enabled = true;
                button_Huy.Enabled = true;
                button_Them.Enabled = false;
                button_Sua.Enabled = false;
                button_Xoa.Enabled = false;                
                dateTimePicker_NgaySuDung.Enabled = true;
                button_Luu.Text = "Xóa";
                button_Luu.Image = global::_201206QuanLyBanHang.Properties.Resources._38;
                label_NgayChiPhi.Text = "Chọn ngày xóa";
                label_NgayChiPhi.ForeColor = System.Drawing.Color.Red;
            }
            else if (fl == 3)//=3 khi nhấn nút hủy
            {
                groupPanel_ThongTinPhatSinh.Enabled = false;
                button_Luu.Enabled = false;
                button_Huy.Enabled = false;                
                button_Sua.Enabled = true;
                button_Xoa.Enabled = true;
                button_Them.Enabled = true;
                dateTimePicker_NgaySuDung.Enabled = false;
                button_Luu.Text = "Lưu";
                button_Luu.Image = global::_201206QuanLyBanHang.Properties.Resources.save;
                label_NgayChiPhi.Text = "Ngày sử dụng";
                label_NgayChiPhi.ForeColor = System.Drawing.SystemColors.HotTrack;
            }
            
        }
        //Sự kiện sửa
        private void button_Sua_Click(object sender, EventArgs e)
        {
            flast = 4;
            ktOn_Off(flast);

        }
      
        private void button_Xoa_Click(object sender, EventArgs e)
        {
            flast = 5;
            ktOn_Off(flast);
            dateTimePicker_NgaySuDung.Focus();
            load_dulieuTheoNgay(dateTimePicker_NgaySuDung.Value.ToShortDateString());
        }
        //Thêm chi phí phát sinh
        private void button_ThemChiPhi_Click(object sender, EventArgs e)
        {
            ChucNang.DM_Chiphididuong fr = new ChucNang.DM_Chiphididuong();
            fr.button_Thoat.Visible = true;
            fr.ShowDialog();

        }

        //private void dateTimePicker_NgaySuDung_CursorChanged(object sender, EventArgs e)
        //{
        //    MessageBox.Show("dateTimePicker_NgaySuDung_CursorChanged");
        //}

        private void dateTimePicker_NgaySuDung_ValueChanged_1(object sender, EventArgs e)
        {
            if (flast == 4 || flast==5 )// Khi nhấn button sửa
            {
                 load_dulieuTheoNgay(dateTimePicker_NgaySuDung.Value.ToShortDateString());
                 //groupPanel_CTPS.Text = "Chi tiết chi phí phát sinh giao hàng ngày " + String.Format("{0:dd/MM/yyyy}",dateTimePicker_NgaySuDung.Value);
                 groupPanel_CTPS.Text = "Chi tiết chi phí phát sinh giao hàng ngày  '" + dateTimePicker_NgaySuDung.Value.ToShortDateString();
             }
           
        }

        private void dataGridView_ChiTiet_CPPS_Click(object sender, EventArgs e)
        {
               dataGridView_ChiTiet_CPPS.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
               dataGridView_ChiTiet_CPPS.CurrentRow.Selected = true;
           

           
            if (flast == 4)// Khi nhấn button sửa rồi bấm vào ds thì
            {
                comboBox_NhanVien.SelectedValue = int.Parse(dataGridView_ChiTiet_CPPS[dataGridView_ChiTiet_CPPS.Columns[5].Index, dataGridView_ChiTiet_CPPS.CurrentRow.Index].Value.ToString());
                comboBoxEx_TenChiPhi.SelectedValue = int.Parse(dataGridView_ChiTiet_CPPS[dataGridView_ChiTiet_CPPS.Columns[6].Index, dataGridView_ChiTiet_CPPS.CurrentRow.Index].Value.ToString());
                textBox_GiaChiPhi.Text=dataGridView_ChiTiet_CPPS[dataGridView_ChiTiet_CPPS.Columns[3].Index,dataGridView_ChiTiet_CPPS.CurrentRow.Index].Value.ToString();
                textBox_GhiChu.Text = dataGridView_ChiTiet_CPPS[dataGridView_ChiTiet_CPPS.Columns[7].Index, dataGridView_ChiTiet_CPPS.CurrentRow.Index].Value.ToString();
                groupPanel_ThongTinPhatSinh.Enabled = true;
                comboBox_NhanVien.Enabled = false;
                comboBoxEx_TenChiPhi.Enabled = false;
             

            }
            if (flast == 5) // Khi nhấn button xóa rồi bấm vào danh sách 
            {
                //sttcpdd = int.Parse(dataGridView_ChiTiet_CPPS[dataGridView_ChiTiet_CPPS.Columns[1].Index, dataGridView_ChiTiet_CPPS.CurrentCell.RowIndex].Value.ToString());
                comboBox_NhanVien.SelectedValue = int.Parse(dataGridView_ChiTiet_CPPS[dataGridView_ChiTiet_CPPS.Columns[5].Index, dataGridView_ChiTiet_CPPS.CurrentRow.Index].Value.ToString());
                comboBoxEx_TenChiPhi.SelectedValue = int.Parse(dataGridView_ChiTiet_CPPS[dataGridView_ChiTiet_CPPS.Columns[6].Index, dataGridView_ChiTiet_CPPS.CurrentRow.Index].Value.ToString());
                textBox_GiaChiPhi.Text = dataGridView_ChiTiet_CPPS[dataGridView_ChiTiet_CPPS.Columns[3].Index, dataGridView_ChiTiet_CPPS.CurrentRow.Index].Value.ToString();
                textBox_GhiChu.Text = dataGridView_ChiTiet_CPPS[dataGridView_ChiTiet_CPPS.Columns[7].Index, dataGridView_ChiTiet_CPPS.CurrentRow.Index].Value.ToString();
                stt = int.Parse(dataGridView_ChiTiet_CPPS[dataGridView_ChiTiet_CPPS.Columns[0].Index, dataGridView_ChiTiet_CPPS.CurrentRow.Index].Value.ToString());
                groupPanel_ThongTinPhatSinh.Enabled = true;
                comboBox_NhanVien.Enabled = false;
                comboBoxEx_TenChiPhi.Enabled = false;
                textBox_GhiChu.Enabled = false;
                textBox_GiaChiPhi.Enabled = false;
            }
        }

        private void button_ALL_Click(object sender, EventArgs e)
        {
            load_dulieu(sql_dsNV_CP_all);
            groupPanel_CTPS.Text = "Tất cả Chi phí đã sử dụng.";
        }

        private void textBox_GiaChiPhi_KeyUp(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Back)
            {
                //Ko làm gì cả chỉ mặc định là xóa
            }
            else
            {
                textBox_GiaChiPhi.Text = textBox_GiaChiPhi.Text.Replace(",", "");
                int cd = textBox_GiaChiPhi.TextLength;
                if (cd > 3 && cd <= 6)
                {
                    textBox_GiaChiPhi.Text = textBox_GiaChiPhi.Text.Insert(cd - 3, ",");
                }
                if (cd > 6 && cd <= 9)
                {
                    textBox_GiaChiPhi.Text = textBox_GiaChiPhi.Text.Insert(cd - 3, ",");
                    textBox_GiaChiPhi.Text = textBox_GiaChiPhi.Text.Insert(cd - 6, ",");
                }
                if (cd > 9 && cd <= 12)
                {
                    textBox_GiaChiPhi.Text = textBox_GiaChiPhi.Text.Insert(cd - 3, ",");
                    textBox_GiaChiPhi.Text = textBox_GiaChiPhi.Text.Insert(cd - 6, ",");
                    textBox_GiaChiPhi.Text = textBox_GiaChiPhi.Text.Insert(cd - 9, ",");
                }
                textBox_GiaChiPhi.SelectionStart = textBox_GiaChiPhi.TextLength;
            }
        }

        private void textBox_GiaChiPhi_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
                e.Handled = true;
        }

        

       
    }
}
